home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 August: Tool Chest / Dev.CD Aug 00 TC Disk 1.toast / pc / sample code / contributed / waste / waste pascal interfaces / wepascalcfmglue.p < prev   
Encoding:
Text File  |  2000-06-23  |  13.4 KB  |  355 lines

  1. UNIT WEPascalCFMGlue;
  2.  
  3. { WASTE Pascal CFM glue code }
  4. { version 1.3 (January 1998) }
  5.  
  6. { RATIONALE: the NewWE≈Proc calls used to create routine descriptors   }
  7. {  for several WASTE callbacks are defined as actual entry points in   }
  8. {  WASTE.p (if generating CFM-based code), but in the C code they're   }
  9. {  really only macros.  So when you link a CFM Pascal program to a     }
  10. {  WASTE library built from C code, you'll want to include this glue   }
  11. {  file to avoid link errors.                                          }
  12.  
  13. { Copyright © 1993-1998 Marco Piovanelli }
  14. { All Rights Reserved }
  15.  
  16. INTERFACE
  17.     USES
  18.         WASTE;
  19.  
  20. IMPLEMENTATION
  21.  
  22. {$IFC GENERATINGCFM}
  23. {$PUSH}
  24. {$Z+}
  25.  
  26.     FUNCTION NewWEClickLoopProc (userRoutine: WEClickLoopProcPtr): WEClickLoopUPP;
  27.     BEGIN
  28.         NewWEClickLoopProc := NewRoutineDescriptor(userRoutine, uppWEClickLoopProcInfo, GetCurrentArchitecture);
  29.     END;  { NewWEClickLoopProc }
  30.  
  31.     FUNCTION NewWEScrollProc (userRoutine: WEScrollProcPtr): WEScrollUPP;
  32.     BEGIN
  33.         NewWEScrollProc := NewRoutineDescriptor(userRoutine, uppWEScrollProcInfo, GetCurrentArchitecture);
  34.     END;  { NewWEScrollProc }
  35.  
  36.     FUNCTION NewWETSMPreUpdateProc (userRoutine: WETSMPreUpdateProcPtr): WETSMPreUpdateUPP;
  37.     BEGIN
  38.         NewWETSMPreUpdateProc := NewRoutineDescriptor(userRoutine, uppWETSMPreUpdateProcInfo, GetCurrentArchitecture);
  39.     END;  { NewWETSMPreUpdateProc }
  40.  
  41.     FUNCTION NewWETSMPostUpdateProc (userRoutine: WETSMPostUpdateProcPtr): WETSMPostUpdateUPP;
  42.     BEGIN
  43.         NewWETSMPostUpdateProc := NewRoutineDescriptor(userRoutine, uppWETSMPostUpdateProcInfo, GetCurrentArchitecture);
  44.     END;  { NewWETSMPostUpdateProc }
  45.  
  46.     FUNCTION NewWEPreTrackDragProc (userRoutine: WEPreTrackDragProcPtr): WEPreTrackDragUPP;
  47.     BEGIN
  48.         NewWEPreTrackDragProc := NewRoutineDescriptor(userRoutine, uppWEPreTrackDragProcInfo, GetCurrentArchitecture);
  49.     END;  { NewWEPreTrackDragProc }
  50.  
  51.     FUNCTION NewWETranslateDragProc (userRoutine: WETranslateDragProcPtr): WETranslateDragUPP;
  52.     BEGIN
  53.         NewWETranslateDragProc := NewRoutineDescriptor(userRoutine, uppWETranslateDragProcInfo, GetCurrentArchitecture);
  54.     END;  { NewWETranslateDragProc }
  55.  
  56.     FUNCTION NewWEHiliteDropAreaProc (userRoutine: WEHiliteDropAreaProcPtr): WEHiliteDropAreaUPP;
  57.     BEGIN
  58.         NewWEHiliteDropAreaProc := NewRoutineDescriptor(userRoutine, uppWEHiliteDropAreaProcInfo, GetCurrentArchitecture);
  59.     END;  { NewWEHiliteDropAreaProc }
  60.  
  61.     FUNCTION NewWEFontIDToNameProc (userRoutine: WEFontIDToNameProcPtr): WEFontIDToNameUPP;
  62.     BEGIN
  63.         NewWEFontIDToNameProc := NewRoutineDescriptor(userRoutine, uppWEFontIDToNameProcInfo, GetCurrentArchitecture);
  64.     END;  { NewWEFontIDToNameProc }
  65.  
  66.     FUNCTION NewWEFontNameToIDProc (userRoutine: WEFontNameToIDProcPtr): WEFontNameToIDUPP;
  67.     BEGIN
  68.         NewWEFontNameToIDProc := NewRoutineDescriptor(userRoutine, uppWEFontNameToIDProcInfo, GetCurrentArchitecture);
  69.     END;  { NewWEFontNameToIDProc }
  70.  
  71.     FUNCTION NewWEDrawTextProc (userRoutine: WEDrawTextProcPtr): WEDrawTextUPP;
  72.     BEGIN
  73.         NewWEDrawTextProc := NewRoutineDescriptor(userRoutine, uppWEDrawTextProcInfo, GetCurrentArchitecture);
  74.     END;  { NewWEDrawTextProc }
  75.  
  76.     FUNCTION NewWEPixelToCharProc (userRoutine: WEPixelToCharProcPtr): WEPixelToCharUPP;
  77.     BEGIN
  78.         NewWEPixelToCharProc := NewRoutineDescriptor(userRoutine, uppWEPixelToCharProcInfo, GetCurrentArchitecture);
  79.     END;  { NewWEPixelToCharProc }
  80.  
  81.     FUNCTION NewWECharToPixelProc (userRoutine: WECharToPixelProcPtr): WECharToPixelUPP;
  82.     BEGIN
  83.         NewWECharToPixelProc := NewRoutineDescriptor(userRoutine, uppWECharToPixelProcInfo, GetCurrentArchitecture);
  84.     END;  { NewWECharToPixelProc }
  85.  
  86.     FUNCTION NewWELineBreakProc (userRoutine: WELineBreakProcPtr): WELineBreakUPP;
  87.     BEGIN
  88.         NewWELineBreakProc := NewRoutineDescriptor(userRoutine, uppWELineBreakProcInfo, GetCurrentArchitecture);
  89.     END;  { NewWELineBreakProc }
  90.  
  91.     FUNCTION NewWEWordBreakProc (userRoutine: WEWordBreakProcPtr): WEWordBreakUPP;
  92.     BEGIN
  93.         NewWEWordBreakProc := NewRoutineDescriptor(userRoutine, uppWEWordBreakProcInfo, GetCurrentArchitecture);
  94.     END;  { NewWEWordBreakProc }
  95.  
  96.     FUNCTION NewWECharByteProc (userRoutine: WECharByteProcPtr): WECharByteUPP;
  97.     BEGIN
  98.         NewWECharByteProc := NewRoutineDescriptor(userRoutine, uppWECharByteProcInfo, GetCurrentArchitecture);
  99.     END;  { NewWECharByteProc }
  100.  
  101.     FUNCTION NewWECharTypeProc (userRoutine: WECharTypeProcPtr): WECharTypeUPP;
  102.     BEGIN
  103.         NewWECharTypeProc := NewRoutineDescriptor(userRoutine, uppWECharTypeProcInfo, GetCurrentArchitecture);
  104.     END;  { NewWECharTypeProc }
  105.  
  106.     FUNCTION NewWEEraseProc (userRoutine: WEEraseProcPtr): WEEraseUPP;
  107.     BEGIN
  108.         NewWEEraseProc := NewRoutineDescriptor(userRoutine, uppWEEraseProcInfo, GetCurrentArchitecture);
  109.     END;  { NewWEEraseProc }
  110.  
  111.     FUNCTION NewWEFluxProc (userRoutine: WEFluxProcPtr): WEFluxUPP;
  112.     BEGIN
  113.         NewWEFluxProc := NewRoutineDescriptor(userRoutine, uppWEFluxProcInfo, GetCurrentArchitecture);
  114.     END;  { NewWEFluxProc }
  115.  
  116.     FUNCTION NewWENewObjectProc (userRoutine: WENewObjectProcPtr): WENewObjectUPP;
  117.     BEGIN
  118.         NewWENewObjectProc := NewRoutineDescriptor(userRoutine, uppWENewObjectProcInfo, GetCurrentArchitecture);
  119.     END;  { NewWENewObjectProc }
  120.  
  121.     FUNCTION NewWEDisposeObjectProc (userRoutine: WEDisposeObjectProcPtr): WEDisposeObjectUPP;
  122.     BEGIN
  123.         NewWEDisposeObjectProc := NewRoutineDescriptor(userRoutine, uppWEDisposeObjectProcInfo, GetCurrentArchitecture);
  124.     END;  { NewWEDisposeObjectProc }
  125.  
  126.     FUNCTION NewWEDrawObjectProc (userRoutine: WEDrawObjectProcPtr): WEDrawObjectUPP;
  127.     BEGIN
  128.         NewWEDrawObjectProc := NewRoutineDescriptor(userRoutine, uppWEDrawObjectProcInfo, GetCurrentArchitecture);
  129.     END;  { NewWEDrawObjectProc }
  130.  
  131.     FUNCTION NewWEClickObjectProc (userRoutine: WEClickObjectProcPtr): WEClickObjectUPP;
  132.     BEGIN
  133.         NewWEClickObjectProc := NewRoutineDescriptor(userRoutine, uppWEClickObjectProcInfo, GetCurrentArchitecture);
  134.     END;  { NewWEClickObjectProc }
  135.     
  136.     FUNCTION NewWEStreamObjectProc (userRoutine: WEStreamObjectProcPtr): WEStreamObjectUPP;
  137.     BEGIN
  138.         NewWEStreamObjectProc := NewRoutineDescriptor(userRoutine, uppWEStreamObjectProcInfo, GetCurrentArchitecture);
  139.     END;  { NewWEStreamObjectProc }
  140.  
  141.     FUNCTION CallWEClickLoopProc (we: WEReference;
  142.                                     userRoutine: WEClickLoopUPP): BOOLEAN;
  143.     BEGIN
  144.         CallWEClickLoopProc := BOOLEAN(CallUniversalProc(userRoutine, uppWEClickLoopProcInfo, we));
  145.     END;  { CallWEClickLoopProc }
  146.  
  147.     PROCEDURE CallWEScrollProc (we: WEReference;
  148.                                     userRoutine: WEScrollUPP);
  149.         VAR
  150.             retval: LONGINT;
  151.     BEGIN
  152.         retval := CallUniversalProc(userRoutine, uppWEScrollProcInfo, we);
  153.     END;  { CallWEScrollProc }
  154.  
  155.     PROCEDURE CallWETSMPreUpdateProc (we: WEReference;
  156.                                     userRoutine: WETSMPreUpdateUPP);
  157.         VAR
  158.             retval: LONGINT;
  159.     BEGIN
  160.         retval := CallUniversalProc(userRoutine, uppWETSMPreUpdateProcInfo, we);
  161.     END;  { CallWETSMPreUpdateProc }
  162.  
  163.     PROCEDURE CallWETSMPostUpdateProc (we: WEReference;
  164.                                     fixLength: LONGINT;
  165.                                     inputAreaStart, inputAreaEnd: LONGINT;
  166.                                     pinRangeStart, pinRangeEnd: LONGINT;
  167.                                     userRoutine: WETSMPostUpdateUPP);
  168.         VAR
  169.             retval: LONGINT;
  170.     BEGIN
  171.         retval := CallUniversalProc(userRoutine, uppWETSMPostUpdateProcInfo, we, fixLength, inputAreaStart, inputAreaEnd, pinRangeStart, pinRangeEnd);
  172.     END;  { CallWETSMPostUpdateProc }
  173.  
  174.     FUNCTION CallWEPreTrackDragProc (drag: DragReference;
  175.                                     we: WEReference;
  176.                                     userRoutine: WEPreTrackDragUPP): OSErr;
  177.     BEGIN
  178.         CallWEPreTrackDragProc := CallUniversalProc(userRoutine, uppWEPreTrackDragProcInfo, drag, we);
  179.     END;  { CallWEPreTrackDragProc }
  180.  
  181.     FUNCTION CallWETranslateDragProc (drag: DragReference;
  182.                                     item: ItemReference;
  183.                                     requestedType: FlavorType;
  184.                                     putDataHere: Handle;
  185.                                     dropOffset: LONGINT;
  186.                                     we: WEReference;
  187.                                     userRoutine: WETranslateDragUPP): OSErr;
  188.     BEGIN
  189.         CallWETranslateDragProc := CallUniversalProc(userRoutine, uppWETranslateDragProcInfo, drag, item, requestedType, putDataHere);
  190.     END;  { CallWETranslateDragProc }
  191.  
  192.     FUNCTION CallWEHiliteDropAreaProc (drag: DragReference;
  193.                                     hiliteFlag: BOOLEAN;
  194.                                     we: WEReference;
  195.                                     userRoutine: WEHiliteDropAreaUPP): OSErr;
  196.     BEGIN
  197.         CallWEHiliteDropAreaProc := CallUniversalProc(userRoutine, uppWEHiliteDropAreaProcInfo, drag, hiliteFlag, we);
  198.     END;  { CallWEHiliteDropAreaProc }
  199.  
  200.     FUNCTION CallWEFontIDToNameProc (fontID: INTEGER;
  201.                                     VAR fontName: Str255;
  202.                                     userRoutine: WEFontIDToNameUPP): OSErr;
  203.     BEGIN
  204.         CallWEFontIDToNameProc := CallUniversalProc(userRoutine, uppWEFontIDToNameProcInfo, fontID, fontName);
  205.     END;  { CallWEFontIDToNameProc }
  206.  
  207.     FUNCTION CallWEFontNameToIDProc ({CONST} VAR fontName: Str255;
  208.                                     oldFontID: INTEGER;
  209.                                     VAR newFontID: INTEGER;
  210.                                     userRoutine: WEFontNameToIDUPP): OSErr;
  211.     BEGIN
  212.         CallWEFontNameToIDProc := CallUniversalProc(userRoutine, uppWEFontNameToIDProcInfo, fontName, oldFontID, newFontID);
  213.     END;  { CallWEFontNameToIDProc }
  214.  
  215.     PROCEDURE CallWEDrawTextProc (pText: Ptr;
  216.                                     textLength: LONGINT;
  217.                                     slop: Fixed;
  218.                                     styleRunPosition: JustStyleCode;
  219.                                     we: WEReference;
  220.                                     userRoutine: WEDrawTextUPP);
  221.         VAR
  222.             retval: LONGINT;
  223.     BEGIN
  224.         retval := CallUniversalProc(userRoutine, uppWEDrawTextProcInfo, pText, textLength, slop, styleRunPosition, we);
  225.     END;  { CallWEDrawTextProc }
  226.  
  227.     FUNCTION CallWEPixelToCharProc (pText: Ptr;
  228.                                     textLength: LONGINT;
  229.                                     slop: Fixed;
  230.                                     VAR width: Fixed;
  231.                                     VAR edge: SignedByte;
  232.                                     styleRunPosition: JustStyleCode;
  233.                                     hPos: Fixed;
  234.                                     we: WEReference;
  235.                                     userRoutine: WEPixelToCharUPP): LONGINT;
  236.     BEGIN
  237.         CallWEPixelToCharProc := CallUniversalProc(userRoutine, uppWEPixelToCharProcInfo, pText, textLength, slop, width, edge, styleRunPosition, hPos, we);
  238.     END;  { CallWEPixelToCharProc }
  239.  
  240.     FUNCTION CallWECharToPixelProc (pText: Ptr;
  241.                                     textLength: LONGINT;
  242.                                     slop: Fixed;
  243.                                     offset: LONGINT;
  244.                                     direction: INTEGER;
  245.                                     styleRunPosition: JustStyleCode;
  246.                                     hPos: INTEGER;
  247.                                     we: WEReference;
  248.                                     userRoutine: WECharToPixelUPP): INTEGER;
  249.     BEGIN
  250.         CallWECharToPixelProc := CallUniversalProc(userRoutine, uppWECharToPixelProcInfo, pText, textLength, slop, offset, direction, styleRunPosition, hPos, we);
  251.     END;  { CallWECharToPixelProc }
  252.  
  253.     FUNCTION CallWELineBreakProc (pText: Ptr;
  254.                                     textLength: LONGINT;
  255.                                     textStart, textEnd: LONGINT;
  256.                                     VAR textWidth: Fixed;
  257.                                     VAR textOffset: LONGINT;
  258.                                     we: WEReference;
  259.                                     userRoutine: WELineBreakUPP): StyledLineBreakCode;
  260.     BEGIN
  261.         CallWELineBreakProc := CallUniversalProc(userRoutine, uppWELineBreakProcInfo, pText, textLength, textStart, textEnd, textWidth, textOffset, we);
  262.     END;  { CallWELineBreakProc }
  263.  
  264.     PROCEDURE CallWEWordBreakProc (pText: Ptr;
  265.                                     textLength, offset: INTEGER;
  266.                                     edge: SignedByte;
  267.                                     VAR breakOffsets: OffsetTable;
  268.                                     script: ScriptCode;
  269.                                     we: WEReference;
  270.                                     userRoutine: WEWordBreakUPP);
  271.         VAR
  272.             retval: LONGINT;
  273.     BEGIN
  274.         retval := CallUniversalProc(userRoutine, uppWEWordBreakProcInfo, pText, textLength, offset, edge, breakOffsets, script, we);
  275.     END;  { CallWEWordBreakProc }
  276.  
  277.     FUNCTION CallWECharByteProc (pText: Ptr;
  278.                                     textOffset: INTEGER;
  279.                                     script: ScriptCode;
  280.                                     we: WEReference;
  281.                                     userRoutine: WECharByteUPP): INTEGER;
  282.     BEGIN
  283.         CallWECharByteProc := CallUniversalProc(userRoutine, uppWECharByteProcInfo, pText, textOffset, script, we);
  284.     END;  { CallWECharByteProc }
  285.  
  286.     FUNCTION CallWECharTypeProc (pText: Ptr;
  287.                                     textOffset: INTEGER;
  288.                                     script: ScriptCode;
  289.                                     we: WEReference;
  290.                                     userRoutine: WECharTypeUPP): INTEGER;
  291.     BEGIN
  292.         CallWECharTypeProc := CallUniversalProc(userRoutine, uppWECharTypeProcInfo, pText, textOffset, script, we);
  293.     END;  { CallWECharTypeProc }
  294.  
  295.     PROCEDURE CallWEEraseProc ({CONST} VAR area: Rect;
  296.                                     we: WEReference;
  297.                                     userRoutine: WEEraseUPP);
  298.         VAR
  299.             retval: LONGINT;
  300.     BEGIN
  301.         retval := CallUniversalProc(userRoutine, uppWEEraseProcInfo, area, we);
  302.     END;  { CallWEEraseProc }
  303.  
  304.     PROCEDURE CallWEFluxProc (offset: LONGINT;
  305.                                     delta: LONGINT;
  306.                                     we: WEReference;
  307.                                     userRoutine: WEFluxUPP);
  308.         VAR
  309.             retval: LONGINT;
  310.     BEGIN
  311.         retval := CallUniversalProc(userRoutine, uppWEFluxProcInfo, offset, delta, we);
  312.     END;  { CallWEFluxProc }
  313.  
  314.     FUNCTION CallWENewObjectProc (VAR defaultObjectSize: Point;
  315.                                     objectRef: WEObjectReference;
  316.                                     userRoutine: WENewObjectUPP): OSErr;
  317.     BEGIN
  318.         CallWENewObjectProc := CallUniversalProc(userRoutine, uppWENewObjectProcInfo, defaultObjectSize, objectRef);
  319.     END;  { CallWENewObjectProc }
  320.  
  321.     FUNCTION CallWEDisposeObjectProc (objectRef: WEObjectReference;
  322.                                     userRoutine: WEDisposeObjectUPP): OSErr;
  323.     BEGIN
  324.         CallWEDisposeObjectProc := CallUniversalProc(userRoutine, uppWEDisposeObjectProcInfo, objectRef);
  325.     END;  { CallWEDisposeObjectProc }
  326.  
  327.     FUNCTION CallWEDrawObjectProc ({const} VAR destRect: Rect;
  328.                                     objectRef: WEObjectReference;
  329.                                     userRoutine: WEDrawObjectUPP): OSErr;
  330.     BEGIN
  331.         CallWEDrawObjectProc := CallUniversalProc(userRoutine, uppWEDrawObjectProcInfo, destRect, objectRef);
  332.     END;  { CallWEDrawObjectProc }
  333.  
  334.     FUNCTION CallWEClickObjectProc (hitPoint: Point;
  335.                                     modifiers: EventModifiers;
  336.                                     clickTime: LONGINT;
  337.                                     objectRef: WEObjectReference;
  338.                                     userRoutine: WEClickObjectUPP): BOOLEAN;
  339.     BEGIN
  340.         CallWEClickObjectProc := BOOLEAN(CallUniversalProc(userRoutine, uppWEClickObjectProcInfo, hitPoint, modifiers, clickTime, objectRef));
  341.     END;  { CallWEClickObjectProc }
  342.  
  343.     FUNCTION CallWEStreamObjectProc (destKind: INTEGER;
  344.                                     VAR theType: FlavorType;
  345.                                     putDataHere: Handle;
  346.                                     objectRef: WEObjectReference;
  347.                                     userRoutine: WEStreamObjectUPP): OSErr;
  348.     BEGIN
  349.         CallWEStreamObjectProc := CallUniversalProc(userRoutine, uppWEStreamObjectProcInfo, destKind, theType, putDataHere, objectRef);
  350.     END;  { CallWEStreamObjectProc }
  351.  
  352. {$POP}
  353. {$ENDC}
  354.  
  355. END.